<?php
 /*
     *
     *  This file is part of ValerieEngine
     *  ValerieEngine is free software: you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation, either version 3 of the License, or
     *  (at your option) any later version.
     *
     *  ValerieEngine is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     *  GNU General Public License for more details.
     *
     *  You should have received a copy of the GNU General Public License
     *  along with ValerieEngine.  If not, see <http://www.gnu.org/licenses/>.
     *
     */

    class DBALayer {

        private static $_instance;

        /**
         * Private Constructor. Create a new connection for DB with PDO class
         * @return DBALayer
         */
        private final function __construct() {
            return new PDO(DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
        }

        /**
         * Return a instance of self, if it's not init yet than create new
         * @static
         * @return DBALayer
         */
        static public final function DBInstance() {

            if (!empty(self::$_instance)) {
                self::$_instance = new self();
            }

            return self::$_instance;
        }
    }
